﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Input;

namespace Engine.Input
{
    public delegate void DirecinalUp(Direcao dir);

    public class DirectionHelper
    {
        SimpleConcreteInputPlayable sci1;
        SimpleConcreteInputPlayable sci2;
        SimpleConcreteInputPlayable sci3;
        SimpleConcreteInputPlayable sci4;
        DirecinalUp dup;

        private void KeyStateChangecima()
        {
            dup(Direcao.CIMA);
        }
        private void KeyStateChangebaixo()
        {
            dup(Direcao.BAIXO);
        }
        private void KeyStateChangedireita()
        {
            dup(Direcao.DIREITA);
        }
        private void KeyStateChangeesquerda()
        {
            dup(Direcao.ESQUERDA);
        }

        public DirectionHelper(DirecinalUp callback) : this(Keys.Up, Keys.Down, Keys.Right, Keys.Left, callback)
        {
            
        }

        public DirectionHelper(Keys cima, Keys baixo, Keys direita, Keys esquerda, DirecinalUp callback)
        {
            sci1 = new SimpleConcreteInputPlayable(StateKey.DOWN, cima, KeyStateChangecima , EntityType.TOOLS);
            sci2 = new SimpleConcreteInputPlayable(StateKey.DOWN, baixo, KeyStateChangebaixo, EntityType.TOOLS);
            sci3 = new SimpleConcreteInputPlayable(StateKey.DOWN, direita, KeyStateChangedireita, EntityType.TOOLS);
            sci4 = new SimpleConcreteInputPlayable(StateKey.DOWN, esquerda, KeyStateChangeesquerda, EntityType.TOOLS);
            dup = callback;
        }

        
    }

    public enum Direcao
    {
        CIMA, BAIXO, DIREITA , ESQUERDA
    }
}
